UIWebView导致苹果审核被拒该怎么办?
苹果在 iOS 13 上,要求开发者必须用 WKWebView 替代 UIWebView,按照苹果 2019 年 12 月 13 日的文档里给出的时间要求是:
2020 年 4 月,新应用必须使用 WKWebView 代替 UIWebView
2020 年 12 月,应用更新必须使用 WKWebView 代替 UIWebView
注意一下这事的时间线:
2019-09-05,Cocos 引擎开发组已经更新了 Cocos2d-x 和 Cocos Creator 里的代码完成 WKWebView 替换 UIWebView 的工作
2019-09-20,苹果是正式推送 iOS 13 更新给消费者
2019-12-13,苹果发出了强制升级 WKWebView 的通知
所以其实时间还是很充裕的,但大家可能也没太重视。今天已经 5 月 22 日了,所以新提交应用必须按要求完成替换。正好昨晚有开发者给我发来一个问题,苹果商店提交审核被拒,理由是:
ITMS-90809: Deprecated API Usage - New apps that use UIWebView are no longer accepted. Instead, use WKWebView for improved security and reliability. Learn more .
也就是说,如果你还在用带了 UIWebView 的引擎老版本,不升级到 WKWebView 的话,苹果 AppStore 审核已经不让通过了。
我罗列一下,引擎各产品线更新到 WKWebView 的情况如下:
也就是说,如果你用的是:
Cocos2d-x v3.17.2 以及更早版本
Cocos Creator v2.1.2 以及更早版本
那么不从引擎里替换掉 UIWebView 调用代码的话,将导致原生包在 AppStore 审核被拒。
Cocos Creator 3D 尚未添加 WebView 支持,所以不涉及。
我不会简单地一句话描述 “请大家升级引擎版本” 来解决。
很多开发到中后期、甚至已经上线运营的游戏项目不太可能大动干戈升级整个引擎版本。我们只需要精准地动点儿小手术就行了。
Cocos2d-x 用户,可以根据 pull request(1) 来做手工合并。
Cocos Creator 用户,可以根据这个 pull request(2) 做手工合并。
虽然 Cocos 引擎团队会持续地升级兼容平台的新接口、新要求,但确实很难把几年前的所有历史版本全部对新接口适配一遍后重新发布,还请大家能够理解。
所以正确的解法就是:
1. 新立项的时候,尽量用最新版的引擎。Dashboard 功能的推出也是为了方便这一点。
2. 对于固定在老版本上的已有项目,根据上述 Pull Request 里改动的文件,自己做手工合并。
1.文档
https://developer.apple.com/news/?id=12232019b
2.Learn more
https://developer.apple.com/documentation/uikit/uiwebview
3.pull request(1)
https://github.com/cocos2d/cocos2d-x/pull/20098/files
4.pull request(2)
https://github.com/cocos-creator/cocos2d-x-lite/pull/1837/files
你还在熬夜加班写 bug? 让小秘书来帮你
Creator 3D 官方中文视频教程,附素材源码
Analytics自定义事件功能详解,埋点分析利器
前端开发者入门 Cocos Creator 必读